Repository navigation
CKS: preserve node offerings during nodeids scale-in - #14459
andrijapanicsb wants to merge 1 commit into
Conversation
Do not infer a global resize when offering parameters are omitted. Keep node-type offerings in count-only accounting and continue processing explicit autoscaling changes without a resize. Add regression coverage for selected-worker removal, mixed and legacy offerings, and autoscaling-only requests. Fixes #14458
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #14459 +/- ##
============================================
+ Coverage 18.07% 20.46% +2.39%
- Complexity 16357 21439 +5082
============================================
Files 5937 6487 +550
Lines 537029 589328 +52299
Branches 65833 72247 +6414
============================================
+ Hits 97043 120615 +23572
- Misses 428901 455547 +26646
- Partials 11085 13166 +2081
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
🔴 Test Coverage Grade:
|
| Metric | Value |
|---|---|
| Line coverage | 25.51% |
| Branch coverage | 19.83% |
Grade Scale
| Grade | Line Coverage | Meaning |
|---|---|---|
| 🟢 A | ≥ 80% | Excellent - this code sleeps well at night 😴 |
| 🟡 B | 60-79% | Good - almost there, don't stop now 😉 |
| 🟠 C | 40-59% | Acceptable - your code is wearing a seatbelt, but no airbags 😬 |
| 🔴 D | 20-39% | Marginal - boldly shipping where no test has gone before 🖖 |
| ⛔ F | < 20% | Failing - tests? what tests? 🔥 |
Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run
|
@blueorangutan package |
|
@andrijapanicsb a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 19661 |
|
@andrijapanicsb We haven’t tested this PR. Does it also cover this scale-up issue, and is a fix planned for 4.23? |
@modupei 4.23 is not an LTS version. The next path to upgrade will be 24.0. This is aimed at that, but it is not sure yet if it will make it in. |



Fixes #14458. Found during QA for #14223; this is a separate PR based on
main.Fix
A
nodeids-only scale-in could fall back to the old global offering and try to resize unrelated nodes before removing the selected worker.Omitted offering parameters now preserve existing offerings. Count-only accounting uses the node-type offering, and autoscaling-only requests still work without resizing VMs. The normal drain/remove workflow is unchanged.
Testing
137 CKS unit tests passed, including regression tests for selected-worker removal, mixed/legacy offerings and autoscaling-only requests.
Live verification used the #14223 baseline with this fix applied. A request with only the cluster ID and
nodeidsremoved the exact additional worker:Retained nodes stayed Ready with unchanged guest/Kubernetes capacity, allocatable resources, boot IDs and kubelet start times. All 17 resident Pod UIDs/restart counts were unchanged; HTTP/DNS passed. Repeating the removed ID was rejected without changes.
Final cluster: 6 CPU / 7168 MiB. Global RAM returned to 9/~14 GiB after a 13-GiB test peak. Original node placement was restored.